{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "134e7f9d",
   "metadata": {},
   "source": [
    "# Example 7: Continual Learning"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2571d531",
   "metadata": {},
   "source": [
    "Setup: Our goal is to learn a 1D function from samples. The 1D function has 5 Gaussian peaks. Instead of presenting all samples to NN all at once, we have five phases of learning. In each phase only samples around one peak is presented to KAN. We find that KANs can do continual learning thanks to locality of splines."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2075ef56",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7ff40b9ea430>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from kan import *\n",
    "import numpy as np\n",
    "import torch\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "datasets = []\n",
    "\n",
    "n_peak = 5\n",
    "n_num_per_peak = 100\n",
    "n_sample = n_peak * n_num_per_peak\n",
    "\n",
    "x_grid = torch.linspace(-1,1,steps=n_sample)\n",
    "\n",
    "x_centers = 2/n_peak * (np.arange(n_peak) - n_peak/2+0.5)\n",
    "\n",
    "x_sample = torch.stack([torch.linspace(-1/n_peak,1/n_peak,steps=n_num_per_peak)+center for center in x_centers]).reshape(-1,)\n",
    "\n",
    "\n",
    "y = 0.\n",
    "for center in x_centers:\n",
    "    y += torch.exp(-(x_grid-center)**2*300)\n",
    "    \n",
    "y_sample = 0.\n",
    "for center in x_centers:\n",
    "    y_sample += torch.exp(-(x_sample-center)**2*300)\n",
    "    \n",
    "\n",
    "plt.plot(x_grid.detach().numpy(), y.detach().numpy())\n",
    "plt.scatter(x_sample.detach().numpy(), y_sample.detach().numpy())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "19477c89",
   "metadata": {},
   "source": [
    "Sequentially prensenting different peaks to KAN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "831a9456",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Z88u6z7OOd1zzz1atGiRurq6dPnll+v//u//oh1ojQ4dOqQbbrhBPT096unp0Q033KDDhw9PeZ8vfelLSqVS4/5dfPHF8Qy4TPfff7/OOOMMdXZ2auXKlXrmmWemvP3mzZu1cuVKdXZ2atmyZfrBD34Q00hrU8nr3LRp04T3LZVKaffu3TGOuHJbtmzR5z//eS1atEipVEo/+clPpo3PUu8n8ekXYnQiYpQY9QXxORHxSXz6hBidiBglRn1BfE7UTPE5nbq8n84zd999t7vvvvvc7bff7np6esq6z7333utmzpzpHn30Ubdz50537bXXuoULF7rh4eFoB1uDtWvXuvPOO889++yz7tlnn3XnnXee+63f+q0p77Nu3Tq3du1a98477xT+HTx4MKYRT++f//mfXVtbm3vggQfcwMCAu+2229xJJ53k3njjjZK337dvn+vu7na33XabGxgYcA888IBra2tz//qv/xrzyCtT6evcuHGjk+T27Nkz7r3LZrMxj7wyTz75pPvGN77hHn30USfJPf7441PG52Tv5/XXX098eoIYJUaJUX9jlPgkPolPf+PTOWKUGCVGfY5R4rP543Mq9Xo/vWuOBR566KGymmP5fN4tWLDA3XvvvYXrRkZGXE9Pj/vBD34Q4QirNzAw4CS5X/ziF4XrnnvuOSfJ7d69e9L7rVu3zl1zzTUxjLA6F110kbv55pvHXbdixQp35513lrz9n/7pn7oVK1aMu+6rX/2qu/jiiyMbYz1U+jqDpHTo0KEYRheN4qRUKj5LvZ9/+Id/6Nra2ohPTxCjxCgxek0MI6wO8Ul8Ep/XxDDC6hGjxCgxek0MI6wO8Zmc+CylXu+nd4dVVuq1117TgQMHdMUVVxSu6+jo0GWXXaZnn322gSOb3HPPPaeenh6tXr26cN3FF1+snp6eace8adMmzZs3T8uXL9dXvvIVvfvuu1EPtyyjo6PaunXruPdBkq644opJX9Nzzz034fZXXnmlXnzxRY2NjUU21lpU8zoDfX19WrhwoT73uc9p48aNUQ6zIUq9n5/4xCc0Njamz3zmM4XriM/GIEaJUWLU3xglPolP4tPf+JSIUWKUGJX8jVHik/is1/tpvjl24MABSdL8+fPHXT9//vzC33xz4MABzZs3b8L18+bNm3LMV111lR555BH9/Oc/11//9V/rhRde0Gc/+1llMpkoh1uW999/X7lcrqL34cCBAyVvn81m9f7770c21lpU8zoXLlyoH/7wh3r00Uf12GOPqbe3V5/73Oe0ZcuWOIYcm1LvZ0vLiRTT1tY27nriM37EKDFKjPobo8Qn8Ul8+hufEjFKjBKjPsco8Ul81uv9TNd7YKXcc889Wr9+/ZS3eeGFF7Rq1aqqnyOVSo277JybcF3Uyn2d0sTxStOP+dprry38/3nnnadVq1Zp6dKleuKJJ/Q7v/M7VY66vip9H0rdvtT1vqnkdfb29qq3t7dwec2aNdq/f7/+6q/+Spdeemmk4yxHOeu2XJO9n8HGQ/h64rMxiNGJiFFi1JcYJT4nIj6JT1/iUyJGSyFGiVFfYpT4nMj3+KyneryfsTTHvva1r+m6666b8jann356VY+9YMECSSe6hQsXLixc/+67707oHkat3Ne5Y8cO/frXv57wt/fee6+iMS9cuFBLly7VK6+8UvFY623OnDlqbW2d0LWe6n1YsGBBydun02mdeuqpkY21FtW8zlIuvvhi/eM//mO9h1eVctbtOeecM+3jlHo/g6RU/K0S8Rk/YpQYJUbH8ylGiU/ik/gcz6f4lIhRYpQYLeZTjBKfduOzXur1fsbSHJszZ47mzJkTyWOfccYZWrBggZ5++mn19fVJOnE87ubNm/Wd73wnkuecTLmvc82aNRoaGtL//u//6qKLLpIkPf/88xoaGtIll1xS9vMdPHhQ+/fvH9cUbJT29natXLlSTz/9tL74xS8Wrn/66ad1zTXXlLzPmjVr9B//8R/jrvvZz36mVatWTdg92RfVvM5Stm3b5sX7JtUvPku9n7/85S/V1tamTZs2FdY68dkYxCgxSoyO51OMEp/EJ/E5nk/xKRGjxCgxWsynGCU+7cZnvdTt/azo5/tj8MYbb7ht27a59evXuxkzZrht27a5bdu2uSNHjhRu09vb6x577LHC5Xvvvdf19PS4xx57zO3cudP93u/9nolT6H784x93zz33nHvuuefc+eefP+EUuuHXeeTIEXfHHXe4Z5991r322mtu48aNbs2aNe60007z5nUGp5Z98MEH3cDAgPv617/uTjrpJPf6668755y788473Q033FC4fXDK1T/5kz9xAwMD7sEHHzR1Ct1yX+d3v/td9/jjj7u9e/e6l19+2d15551Oknv00Ucb9RLKcuTIkUL8SXL33Xefe/LJJ92TTz7p1q9f79rb293VV19diM/g/Tz55JPd3/zN3xTez+uvv5749AQxSowSo/7GKPFJfBKf/sanc8QoMUqM+hyjxGfzx+e2bdvcG2+84ZyL7v30rjm2bt06J2nCv40bNxZuI8k99NBDhcv5fN5985vfdAsWLHAdHR3u0ksvdTt37ox/8BU4ePCgu/76693MmTPdzJkz3fXXXz/hFKvh13ns2DF3xRVXuLlz57q2tja3ZMkSt27dOjc4OBj/4Kfwt3/7t27p0qWuvb3d9ff3u82bNxf+tm7dOnfZZZeNu/2mTZtcX1+fa29vd6effrr7/ve/H/OIq1PJ6/zOd77jzjzzTNfZ2elOPvlk96lPfco98cQTDRh1ZYJT/5bzL4jPTZs2OUmutbW18H4Sn34hRolRYtTfGCU+iU/i09/4dI4YdY4YJUb9jVHis/njc926dc656N7PlHP//2BpAAAAAAAAIGFapr8JAAAAAAAA0JxojgEAAAAAACCxaI4BAAAAAAAgsWiOAQAAAAAAILFojgEAAAAAACCxaI4BAAAAAAAgsWiOAQAAAAAAILFojgEAAAAAACCxaI4BAAAAAAAgsWiOAQAAAAAAILFojgEAAAAAACCxaI4BAAAAAAAgsf4fZKdzgikK6NYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1500x200 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(1, 5, figsize=(15, 2))\n",
    "plt.subplots_adjust(wspace=0, hspace=0)\n",
    "\n",
    "for i in range(1,6):\n",
    "    plt.subplot(1,5,i)\n",
    "    group_id = i - 1\n",
    "    plt.plot(x_grid.detach().numpy(), y.detach().numpy(), color='black', alpha=0.1)\n",
    "    plt.scatter(x_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak].detach().numpy(), y_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak].detach().numpy(), color=\"black\", s=2)\n",
    "    plt.xlim(-1,1)\n",
    "    plt.ylim(-1,2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e487a84",
   "metadata": {},
   "source": [
    "Training KAN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "11a1d129",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 3.99e-06 | test loss: 3.99e-06 | reg: 1.26e-01 : 100%|█| 100/100 [00:01<00:00, 59.94it/s\n",
      "train loss: 3.99e-06 | test loss: 3.99e-06 | reg: 1.26e-01 : 100%|█| 100/100 [00:01<00:00, 70.47it/s\n",
      "train loss: 3.99e-06 | test loss: 3.99e-06 | reg: 1.26e-01 : 100%|█| 100/100 [00:01<00:00, 74.04it/s\n",
      "train loss: 3.99e-06 | test loss: 3.99e-06 | reg: 1.26e-01 : 100%|█| 100/100 [00:01<00:00, 76.05it/s\n",
      "train loss: 3.99e-06 | test loss: 3.99e-06 | reg: 1.26e-01 : 100%|█| 100/100 [00:01<00:00, 81.69it/s\n"
     ]
    }
   ],
   "source": [
    "ys = []\n",
    "\n",
    "# setting bias_trainable=False, sp_trainable=False, sb_trainable=False is important.\n",
    "# otherwise KAN will have random scaling and shift for samples in previous stages\n",
    "\n",
    "model = KAN(width=[1,1], grid=200, k=3, noise_scale=0.1, bias_trainable=False, sp_trainable=False, sb_trainable=False)\n",
    "\n",
    "for group_id in range(n_peak):\n",
    "    dataset = {}\n",
    "    dataset['train_input'] = x_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]\n",
    "    dataset['train_label'] = y_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]\n",
    "    dataset['test_input'] = x_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]\n",
    "    dataset['test_label'] = y_sample[group_id*n_num_per_peak:(group_id+1)*n_num_per_peak][:,None]\n",
    "    model.train(dataset, opt = 'LBFGS', steps=100, update_grid=False);\n",
    "    y_pred = model(x_grid[:,None])\n",
    "    ys.append(y_pred.detach().numpy()[:,0])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dbb9a1b7",
   "metadata": {},
   "source": [
    "Prediction of KAN after each stage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "12379f4a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABMcAAADLCAYAAABqHvQ/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABkjklEQVR4nO3dd3wU1fo/8M9m0wglhBpKCr0IYiLdUKRX8epVsCBWhIvKtVzLvV9R9CroFfTarwVBBRUQEBWlV+lICS20kE4gAVJJ2d3z+yO/M9n03c3s7Az7eb9eeSnJlrNn5znPzDPnzJiEEAJEREREREREREReyMfTDSAiIiIiIiIiIvIUFseIiIiIiIiIiMhrsThGRERERERERERei8UxIiIiIiIiIiLyWiyOERERERERERGR12JxjIiIiIiIiIiIvBaLY0RERERERERE5LVYHCMiIiIiIiIiIq/F4hgREREREREREXktFseIiIiIiIiIiMhrubU4NmfOHPTq1Qv169dHs2bNcPvttyMuLs6db0lEDmJ8EukbY5RIvxifRPrGGCUiZ7m1OLZ161bMmDEDu3fvxvr162GxWDBixAjk5eW5822JyAGMTyJ9Y4wS6Rfjk0jfGKNE5CyTEEJo9WaXLl1Cs2bNsHXrVgwcOFCrtyUiBzA+ifSNMUqkX4xPIn1jjBJRTXy1fLOsrCwAQKNGjSr9e2FhIQoLC5V/22w2XL58GY0bN4bJZNKkjUTeKjk5GQDg7++P7OzsSh9TPkatViuSkpJwww03wGw2a9JOIm9VU4wyPok8hzmUSN+YQ4muL0II5OTkoGXLlvDxUWdBpGYzx4QQmDBhAq5cuYLt27dX+phXX30Vs2fP1qI5RERERERERERkUElJSWjdurUqr6VZcWzGjBn49ddfsWPHjiobX75in5WVhfDwcCQlJaFBgwZaNJPIKz377LNYt24dfv/9d7Rq1arKx5WP0dTUVPTp04cxSuRmjsQo45PIM5hDifSNOZTo+pOdnY2wsDBcvXoVwcHBqrymJssqn3zySaxevRrbtm2rtqoXEBCAgICACr9v0KABByUiN3nyySfx+++/Y9u2bWjTpo1Lr8EYJXKf2sYo45PIfZhDifSNOZTo+qbm5bfcWhwTQuDJJ5/EypUrsWXLFpd3GohIfYxPIn1jjBLpF+OTSN8Yo0TkLLcWx2bMmIElS5bgp59+Qv369XHhwgUAQHBwMOrUqePOtyaiGjA+ifSNMUqkX4xPIn1jjBKRs9x6zbGqprh99dVXePDBB2t8fnZ2NoKDg5GVlcXprEQqq218AiV3/gkLC2OMErlBbWOU8UnkPsyhRPrGHEp0fXNHrcjtyyqJSJ8Yn0T6xhgl0i/GJ5G+MUaJyFk+nm4AERERERERERGRp7A4RkREREREREREXovFMSIiIiIiIiIi8losjhERERERERERkddicYyIiIiIiIiIiLwWi2NEREREREREROS1WBwjIiIiIiIiIiKvxeIYERERERERERF5LRbHiIiIiIiIiIjIa7E4RkREREREREREXovFMSIiIiIiIiIi8losjhERERERERERkddicYyIiIiIiIiIiLwWi2NEREREREREROS1WBwjIiIiIiIiIiKvxeIYERERERERERF5LRbHiIiIiIiIiIjIa7E4RkREREREREREXovFMSIiIiIiIiIi8losjhERERERERERkddicYyIiIiIiIiIiLwWi2NEREREREREROS1WBwjIiIiIiIiIiKvxeIYERERERERERF5LRbHiIiIiIiIiIjIa7E4RkREREREREREXovFMSIiIiIiIiIi8losjhERERERERERkddicYyIiIiIiIiIiLwWi2NEREREREREROS1WBwjIiIiIiIiIiKvxeIYERERERERERF5LRbHiIiIiIiIiIjIa7E4RkREREREREREXovFMSIiIiIiIiIi8losjhERERERERERkddicYyIiIiIiIiIiLwWi2NEREREREREROS1WBwjIiIiIiIiIiKvxeIYERERERERERF5LbcWx7Zt24bx48ejZcuWMJlMWLVqlTvfjoicxBgl0i/GJ5G+MUaJ9IvxSUTOcmtxLC8vDz169MCHH37ozrchIhcxRon0i/FJpG+MUSL9YnwSkbN83fnio0ePxujRo935FkRUC4xRIv1ifBLpG2OUSL8Yn0TkLK+95lhqaio+++wzXLx40dNNcVphYSGKioo83Qyn2Ww2XLt2DTabzdNNcVpRUZEh+9xqtSI/P99wfS6EwC+//II1a9Z4uilOS0tLw3fffYdLly55uilO49iivcLCQhQWFnq6GU4zag4VQmDNmjXYtm2bp5vitPT0dHzzzTfIyMjwdFOcxhyqLeZQ7QkhsHbtWmze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dCpf053y8vKURDBu3Lhavdb48eMBAGvXrtVkZ80d27mjMZqYmIj33nsPt9xyC8LCwvD0009j165dMJlMGDBgAD744AOkpKRg69atmDFjRpnr/LljbNFqOzfq2GLkHPrdd98BKLnGS23GlubNmyt3f1q5cqUqbatOQUGBcrZ3woQJtXqt2267DUDJgYKrff7CCy9g37598PPzw1133YVly5bh4sWLWLp0Ke66664yN6cx6nbOHMoc6oxVq1YBKJmdUZs+b9GihTK2LFmyRI2mVevatWvK2CL7zFW33347AOC3335zqc+dLY4ZdWxhDmUOdYbsn5iYmFqPLfLi9itWrFClbdXJz89X+nzs2LG1eq077rgDQMnJDq0K2NW57opjy5cvR05ODlq3bl2r9dJAyfTnkJAQZGZmKlMe3UkebFZ1V0RnOFtkqo2CggIIIWA2m2t1XQCgJAn6+PjAZrNVOXvswoULWLBgAe688040adIEI0aMwOeff47MzEw0bdoUjz/+ODZu3IjU1FR88sknFQpi9vLz8wEYs89tNptmfa4WIYSyQzhp0qRav57ccdBix37FihXIzc1FWFiYamNLenq6Jme+1dzO5WtUtZ1bLBbs2LEDL730Erp3746IiAg8/fTT2LlzJ0wmE2JiYvD+++8jOTkZ27ZtwxNPPFHljS+0HlvUZNSxxag5VAiB77//HgBwzz331Pr15IHgN998U+vXqsmyZcuQm5uL0NDQWl3PCABGjhyJRo0aISMjw6Uz30IIZanaL7/8gqVLl+Kvf/0r6tatW+njjbqdM4eWYA6tmRACixcvBlD7A28AuPvuuwFo0+fLli1DTk4OWrZs6fKF4aVhw4YhODgYGRkZTi9nFULg6tWrABwvjhl1bGEOLeGtOdQZQgh8++23AIC//OUvtX49WdiT36M7LVu2DNnZ2WjVqpXL1xuThg0bhoYNGyIzM1OzGXvVEjqWlZUlAIisrCyHnzNgwAABQDz//POqtOHRRx8VAMSoUaNUeb2qFBYWipSUFJGamipsNlutX89qtYrU1FSRkpIiioqKVGhh1TIyMkRKSorIzs5W5fWuXr0qUlJSRGZmphCi5LPs3btXvPLKK6Jnz54CQJmf5s2bi6lTp4oNGzaI4uJih9+HfV6qfJ87KikpyakY3bhxowAgAgMDnYrrqiQkJAhfX18BQOzevbvWr1cdObY8++yzqrzetGnTBAAxZswYVV6vKmpv5xaLRaSkpJTZzjMyMsS3334r7rnnHhESElImPn18fERMTIz473//K5KTk516L71s587Sos8d4Wx8CmHcHGo/tly9erXWr5eWlib8/PwEALFv3z4VWli1W265RQAQL7zwgiqvJ/t89OjRTj/3xIkTSj8WFBRU+1jm0FLMoTUzag5dv369ACCCgoJUGVuSkpKEj4+PACD27t2rQgurJvtcrbFl6tSpLo3nmZmZyj7BtWvXanw8c2gp5tCa6SmHOkP2eVBQkCrjeUpKitLne/bsUaGFVRs4cKCqff7YY4+5tJ27UiuqyXVVHJMbma+vrzhz5owqbTh27JgyoB84cECV16yM3FG7cuWKaq95+fJltx8IygSWkpIiLBaLKq9ZXFwsTp48KT777DMxZcoU0bx58woFsZ49e4pXXnlF7Nu3T1itVpfex519fvnyZdVeszx39bl8TWcKjM7uOMidhgceeMDVplZw1113CQDitttuU+01y9u8ebMAIPz8/MTZs2dVec1Dhw4JAMJkMrl1B9kd23lmZqbYsGGDePnll8Utt9yi7OjLn0aNGol7771XLF68WGRkZLj0Hu7ezt158K2XscXVA28j5tBBgwYJAGLKlCmqvebtt98uAIhx48ap9prlbdq0SSkix8fHq/KasbGxwmQyudTnn376qQAgBg8eXONj9bKdO4s5tCzm0KrZbDa3jC133nmn2/tcjuc+Pj6q9XlsbKzymvv373f4eYcPHxYAROPGjR16vF7GFubQ2vHGHOoom83mlvFcy7FFze386NGjynh+8OBBh59n2OLYRx99JCIjI0VAQICIjo4W27Ztc+h5znzg/Px8ccMNNwgA4qGHHqptk8sYP368ACB69eql2o6Uvfz8fNV31IQou7NW0xlgV9hsNnHx4kXVElhcXJyYP3++GDJkiFL5lj/169cXd955p1iwYIFIS0ur9XvJPk9NTVW1z4uKijTrczXO7AhRNj67d+8uVq9e7fBzndlx+Prrr1XfORZCiH379inFmZ9++km115XsxxY1dxqEEOKOO+4QAESfPn1EYWGhqq8thLrbeV5envj555/FtGnTRFhYWIWCdffu3cWLL74otm/f7tTBYWXcsZ1Lcgf50qVLqr6u5I6xpXyMbtiwwaHnOROfRs6h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FotjRERERERERETktVgcIyIiIiIiIiIir8XiGBEREREREREReS0Wx4iIiIiIiIiIyGuxOEZERERERERERF6LxTEiIiIiIiIiIvJaLI4REREREREREZHXYnGMiIiIiIiIiIi8FotjRERERERERETktVgcIyIiIiIiIiIir8XiGBEREREREREReS0Wx4iIiIiIiIiIyGuxOEZERERERERERF6LxTEiIiIiIiIiIvJaLI4REREREREREZHXYnGMiIiIiIiIiIi8FotjRERERERERETktVgcIyIiIiIiIiIir8XiGBEREREREREReS0Wx4iIiIiIiIiIyGuxOEZERERERERERF6LxTEiIiIiIiIiIvJaLI4REREREREREZHXcmtx7I033kD//v0RFBSEhg0buvOtiMhJjE8i/WJ8EukbY5RI3xijROQstxbHioqKcNddd2H69OnufBsicgHjk0i/GJ9E+sYYJdI3xigROcvXnS8+e/ZsAMDChQvd+TZE5ALGJ5F+MT6J9I0xSqRvjFEicpZbi2POKiwsRGFhofLvrKwsAEB2dranmkR03bt27RoAx+KsfIympqY6/Fwich7jk0jfGKNE+uZojDI+iYxFxqYQQrXX1FVxbM6cOUqV315YWJgHWkPkXYKDg11+LmOUyL0Yn0T6xhgl0jdXY5TxSaRvmZmZtcrB9pwujr366quVFrDs7du3Dz179nS6MS+99BKeeeYZ5d9Xr15FREQEEhMTVfvAepSdnY2wsDAkJSWhQYMGnm6O23jL5wQ891nnzJmDuXPnVvuYzZs3Izo6Wvn34sWL8dJLLyExMbHG1y9/Vi05ORn9+vVDbGwswsPDXW+4znnLtsvP6V6MT/fgdnv9YYxeX7xl2+XndD93xijjk9vt9cJbPmtWVhbCw8PRqFEj1V7T6eLYE088gUmTJlX7mMjISJcaExAQgICAgAq/Dw4Ovq6/WKlBgwb8nNcZrT/rs88+iylTplT7mMjISAQGBir/rlOnDgDUqp0NGzb0iu/UW7Zdfk73YHy6F7fb6w9j9PriLdsuP6f7eCJGGZ/XF2/5nID3fFYfH/XuMel0caxJkyZo0qSJag0gIvUwPon0i/FJpG+MUSJ9Y4wSkTu59ZpjiYmJuHz5MhITE2G1WnHo0CEAQPv27VGvXj13vjUR1YDxSaRfjE8ifWOMEukbY5SI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QsTGxop77rnHELfQvfHGG8WuXbvErl27RPfu3SvcQtf+c+bk5Ihnn31W7Ny5U8THx4vNmzeLfv36iVatWunmc8pby3755Zfi+PHj4u9//7uoW7euOH/+vBBCiBdffFFMnjxZeby85erTTz8tjh8/Lr788ktD3ULX0c/57rvvipUrV4pTp06Jo0ePihdffFEAED/++KOnPoJDcnJylPgDIObPny/WrFkj1qxZI2bPni38/f3F2LFjlfiU32dISIh4//33le/zvvvuY3zqBGOUMcoY1W+MMj4Zn4xP/canEIxRxihjVM8xyvi8/uPz4MGDIiEhQQjhvu9Td8WxKVOmCAAVfjZv3qw8BoD46quvlH/bbDbxyiuviNDQUBEQECAGDhwoYmNjtW+8EzIzM8V9990n6tevL+rXry/uu+++CrdYtf+c+fn5YsSIEaJp06bCz89PhIeHiylTpojExETtG1+Njz76SERERAh/f38RHR0ttm7dqvxtypQpYtCgQWUev2XLFhEVFSX8/f1FZGSk+OSTTzRusWuc+ZxvvfWWaNeunQgMDBQhISEiJiZG/Prrrx5otXPkrX8d+ZHxuWXLFgFAmM1m5ftkfOoLY5QxyhjVb4wyPhmfjE/9xqcQjFEhGKOMUf3GKOPz+o/PKVOmCCHc932ahPj/i6WJiIiIiIiIiIi8jE/NDyEiIiIiIiIiIro+sThGRERERERERERei8UxIiIiIiIiIiLyWiyOERERERERERGR12JxjIiIiIiIiIiIvBaLY0RERERERERE5LVYHCMiIiIiIiIiIq/F4hgREREREREREXktFseIiIiIiIiIiMhrsThGRERERERERERei8UxIiIiIiIiIiLyWiyOERERERERERGR1/p/1mcSuMEUa0MAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1500x200 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(1, 5, figsize=(15, 2))\n",
    "plt.subplots_adjust(wspace=0, hspace=0)\n",
    "\n",
    "for i in range(1,6):\n",
    "    plt.subplot(1,5,i)\n",
    "    group_id = i - 1\n",
    "    plt.plot(x_grid.detach().numpy(), y.detach().numpy(), color='black', alpha=0.1)\n",
    "    plt.plot(x_grid.detach().numpy(), ys[i-1], color='black')\n",
    "    plt.xlim(-1,1)\n",
    "    plt.ylim(-1,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d2002726",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
